package com.liy.cloud.common.pw.entity;

import com.liy.cloud.common.pw.vo.GoodsPropertyMoneydetailVO;
import com.das.framework.common.vo.BaseVO;
import org.apache.ibatis.annotations.Insert;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Size;
import java.util.List;

/**
 * @Author: liyang
 * @Date: 2018/6/19 19:31
 **/
public class PwAccountListEntity extends BaseVO<String> {

    private static final long serialVersionUID = 1343042143545490734L;

    /*
     * 车站编号
     */
    @NotBlank(message = "{common.validation.notnull}", groups = {Insert.class})
    @Size(max = 10, message = "{common.validation.length}")
    private String systemId;

    /*
     * 单据编号
     */
    @NotBlank(message = "{common.validation.notnull}", groups = {Insert.class})
    @Size(max = 32, message = "{common.validation.length}")
    private String accountId;

    /*
     * 单据类型
     */
    @Size(max = 2, message = "{common.validation.length}")
    private String type;

    /*
     * 物品类型
     */
    @Size(max = 2, message = "{common.validation.length}")
    private String itemType;

    /*
     * 序号
     */
    @Size(max = 2, message = "{common.validation.length}")
    private String seq;

    /*
     * 物品编号
     */
    @Size(max = 20, message = "{common.validation.length}")
    private String itemId;

    /*
     * 关联设备号
     */
    @Size(max = 9, message = "{common.validation.length}")
    private String deviceId;

    /*
     * 有效期
     */
    @Size(max = 20, message = "{common.validation.length}")
    private String validTime;

    /*

     * 物品状态
     */
    @Size(max = 1, message = "{common.validation.length}")
    private String itemStatus;

    /*
     * 账面数量
     */
    private Long tradeNum;

    /*
     * 实际数量
     */
    private Long actNum;

    /*
     * 实际数量--前端编辑使用
     */
    private Boolean actNumIsEdit = false;


    /*
     * 数量差异
     */
    private Long numDiff;


    /*
     * 账面金额
     */
    private Double tradeMoney;

    /*
     * 实际金额
     */
    private Double actMoney;


    /*
     * 实际金额 -- 前端使用
     */
    private Boolean actMoneyIsEdit = false;

    /*
     * 金额差异
     */
    private Double moneyDiff;

    /*
     * 箱号
     */
    @Size(max = 50, message = "{common.validation.length}")
    private String boxNo;

    /*
     * 备用字段1
     */
    @Size(max = 100, message = "{common.validation.length}")
    private String ext1;

    /*
     * 备用字段2
     */
    @Size(max = 100, message = "{common.validation.length}")
    private String ext2;

    // 联查字段 物品编号-名称
    private String itemIdName;

    // 设备编号-名称
    private String deviceIdName;

    // 物品编号-大类
    private String itemIdType;

    // 物品编号-小类
    private String itemIdTypeEx;


    /**
     * 默认构造
     **/
    public PwAccountListEntity() {
        super();
    }

    /**
     * @param accountId 主单号
     * @Author: liyang
     * @Date: 2018/8/30  16:08
     * @Description: 有参构造
     **/
    public PwAccountListEntity(String accountId) {
        this.accountId = accountId;
    }


    /**
     * @param accountId 主单号
     * @param deviceId  关联设备号
     * @Author: liyang
     * @Date: 2018/8/30  16:08
     * @Description: 有参构造
     **/
    public PwAccountListEntity(String accountId, String deviceId) {
        this.accountId = accountId;
        this.deviceId = deviceId;
    }


    /**
     * @param accountId 主单号
     * @param deviceId  关联设备号
     * @param itemId    物品id
     * @Author: liyang
     * @Date: 2018/8/30  16:08
     * @Description: 有参构造
     **/
    public PwAccountListEntity(String accountId, String deviceId, String itemId) {
        this.accountId = accountId;
        this.deviceId = deviceId;
        this.itemId = itemId;
    }


    /**
     * Geter and Seter
     **/
    private List<GoodsPropertyMoneydetailVO> moneyDtl;

    public String getSystemId() {
        return systemId;
    }

    public void setSystemId(String systemId) {
        this.systemId = systemId;
    }

    public String getAccountId() {
        return accountId;
    }

    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getItemType() {
        return itemType;
    }

    public void setItemType(String itemType) {
        this.itemType = itemType;
    }

    public String getSeq() {
        return seq;
    }

    public void setSeq(String seq) {
        this.seq = seq;
    }

    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public String getItemStatus() {
        return itemStatus;
    }

    public void setItemStatus(String itemStatus) {
        this.itemStatus = itemStatus;
    }

    public Boolean getActNumIsEdit() {
        return actNumIsEdit;
    }

    public void setActNumIsEdit(Boolean actNumIsEdit) {
        this.actNumIsEdit = actNumIsEdit;
    }

    public Double getTradeMoney() {
        return tradeMoney;
    }

    public void setTradeMoney(Double tradeMoney) {
        this.tradeMoney = tradeMoney;
    }

    public Double getActMoney() {
        return actMoney;
    }

    public void setActMoney(Double actMoney) {
        this.actMoney = actMoney;
    }

    public Boolean getActMoneyIsEdit() {
        return actMoneyIsEdit;
    }

    public void setActMoneyIsEdit(Boolean actMoneyIsEdit) {
        this.actMoneyIsEdit = actMoneyIsEdit;
    }

    public Double getMoneyDiff() {
        return moneyDiff;
    }

    public void setMoneyDiff(Double moneyDiff) {
        this.moneyDiff = moneyDiff;
    }

    public String getValidTime() {
        return validTime;
    }

    public void setValidTime(String validTime) {
        this.validTime = validTime;
    }

    public String getBoxNo() {
        return boxNo;
    }

    public void setBoxNo(String boxNo) {
        this.boxNo = boxNo;
    }

    public String getExt1() {
        return ext1;
    }

    public void setExt1(String ext1) {
        this.ext1 = ext1;
    }

    public String getExt2() {
        return ext2;
    }

    public void setExt2(String ext2) {
        this.ext2 = ext2;
    }

    public Long getTradeNum() {
        return tradeNum;
    }

    public void setTradeNum(Long tradeNum) {
        this.tradeNum = tradeNum;
    }

    public Long getActNum() {
        return actNum;
    }

    public void setActNum(Long actNum) {
        this.actNum = actNum;
    }

    public Long getNumDiff() {
        return numDiff;
    }

    public void setNumDiff(Long numDiff) {
        this.numDiff = numDiff;
    }

    public String getItemIdName() {
        return itemIdName;
    }

    public void setItemIdName(String itemIdName) {
        this.itemIdName = itemIdName;
    }

    public String getDeviceIdName() {
        return deviceIdName;
    }

    public void setDeviceIdName(String deviceIdName) {
        this.deviceIdName = deviceIdName;
    }

    public List<GoodsPropertyMoneydetailVO> getMoneyDtl() {
        return moneyDtl;
    }

    public void setMoneyDtl(List<GoodsPropertyMoneydetailVO> moneyDtl) {
        this.moneyDtl = moneyDtl;
    }

    public String getItemIdType() {
        return itemIdType;
    }

    public void setItemIdType(String itemIdType) {
        this.itemIdType = itemIdType;
    }

    public String getItemIdTypeEx() {
        return itemIdTypeEx;
    }

    public void setItemIdTypeEx(String itemIdTypeEx) {
        this.itemIdTypeEx = itemIdTypeEx;
    }
}
